package com.dragon.modules.yuegou.model.order;

import com.dragon.modules.yuegou.entity.order.OrderPayEntity;
import com.dragon.modules.yuegou.enums.PayType;
import io.swagger.annotations.ApiModelProperty;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 订单支付模型类
 * 
 * @author pbuilder generated
 * @date 2019-10-08 11:05:58
 * @company sgy
 * @version 2.0
 * @see Length 长度限制
 * @see NotNull 对象非空
 * @see NotEmpty 字符串、集合、表、数组非空
 */
public class OrderPay extends OrderPayEntity {

	@ApiModelProperty("支付类型")
	private PayType payType;
	
	public PayType getPayType() {
		return payType;
	}

	public void setPayType(PayType payType) {
		this.payType = payType;
	}

	/**
	 * 构造一个空订单支付模型对象
	 */
	public OrderPay() {
		super();
	}

	/**
	 * 依据实体对象的信息构造一个订单支付模型对象
	 * 
	 * @param entity 实体对象
	 */
	public OrderPay(OrderPayEntity entity) {
		super(entity);
	}

	/**
	 * 依据其它对象的信息构造一个订单支付模型对象
	 * 
	 * @param other 其它对象
	 */
	public OrderPay(OrderPay other) {
		super(other);
	}

	@Override
	public String getOrderNo() {
		return orderNo;
	}

	/**
	 * 设置
	 * 
	 * @param orderNo
	 * @return 当前对象
	 */
	public OrderPay orderNo(String orderNo) {
		this.orderNo = orderNo;
		return this;
	}

	@Override
	public BigDecimal getTotal() {
		return total;
	}

	/**
	 * 设置总共支付金额
	 * 
	 * @param total 总共支付金额
	 * @return 当前对象
	 */
	public OrderPay total(BigDecimal total) {
		this.total = total;
		return this;
	}

	@Override
	public BigDecimal getPayYueCoin() {
		return payYueCoin;
	}

	/**
	 * 设置悦币支付金额
	 * 
	 * @param payYueCoin 悦币支付金额
	 * @return 当前对象
	 */
	public OrderPay payYueCoin(BigDecimal payYueCoin) {
		this.payYueCoin = payYueCoin;
		return this;
	}

	@Override
	public BigDecimal getPayYueCard() {
		return payYueCard;
	}

	/**
	 * 设置悦卡支付金额
	 * 
	 * @param payYueCard 悦卡支付金额
	 * @return 当前对象
	 */
	public OrderPay payYueCard(BigDecimal payYueCard) {
		this.payYueCard = payYueCard;
		return this;
	}

	@Override
	public BigDecimal getPayWechat() {
		return payWechat;
	}

	/**
	 * 设置微信支付金额
	 * 
	 * @param payWechat 微信支付金额
	 * @return 当前对象
	 */
	public OrderPay payWechat(BigDecimal payWechat) {
		this.payWechat = payWechat;
		return this;
	}

	@Override
	public BigDecimal getPayAlipay() {
		return payAlipay;
	}

	/**
	 * 设置支付宝支付金额
	 * 
	 * @param payAlipay 支付宝支付金额
	 * @return 当前对象
	 */
	public OrderPay payAlipay(BigDecimal payAlipay) {
		this.payAlipay = payAlipay;
		return this;
	}

	@Override
	public BigDecimal getPayBank() {
		return payBank;
	}

	/**
	 * 设置银行卡支付金额（暂未使用）
	 * 
	 * @param payBank 银行卡支付金额（暂未使用）
	 * @return 当前对象
	 */
	public OrderPay payBank(BigDecimal payBank) {
		this.payBank = payBank;
		return this;
	}

	@Override
	public BigDecimal getPayCash() {
		return payCash;
	}

	/**
	 * 设置现金支付金额（暂未使用，线下支付的金额）
	 * 
	 * @param payCash 现金支付金额（暂未使用，线下支付的金额）
	 * @return 当前对象
	 */
	public OrderPay payCash(BigDecimal payCash) {
		this.payCash = payCash;
		return this;
	}

	@Override
	public Integer getPayPoint() {
		return payPoint;
	}

	/**
	 * 设置
	 * 
	 * @param payPoint
	 * @return 当前对象
	 */
	public OrderPay payPoint(Integer payPoint) {
		this.payPoint = payPoint;
		return this;
	}

	@Override
	public LocalDateTime getPayTime() {
		return payTime;
	}

	/**
	 * 设置支付时间
	 * 
	 * @param payTime 支付时间
	 * @return 当前对象
	 */
	public OrderPay payTime(LocalDateTime payTime) {
		this.payTime = payTime;
		return this;
	}
}
